home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / tcp_diag.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  128 lines

  1. #ifndef _TCP_DIAG_H_
  2. #define _TCP_DIAG_H_ 1
  3.  
  4. /* Just some random number */
  5. #define TCPDIAG_GETSOCK 18
  6.  
  7. /* Socket identity */
  8. struct tcpdiag_sockid
  9. {
  10.     __u16    tcpdiag_sport;
  11.     __u16    tcpdiag_dport;
  12.     __u32    tcpdiag_src[4];
  13.     __u32    tcpdiag_dst[4];
  14.     __u32    tcpdiag_if;
  15.     __u32    tcpdiag_cookie[2];
  16. #define TCPDIAG_NOCOOKIE (~0U)
  17. };
  18.  
  19. /* Request structure */
  20.  
  21. struct tcpdiagreq
  22. {
  23.     __u8    tcpdiag_family;        /* Family of addresses. */
  24.     __u8    tcpdiag_src_len;
  25.     __u8    tcpdiag_dst_len;
  26.     __u8    tcpdiag_ext;        /* Query extended information */
  27.  
  28.     struct tcpdiag_sockid id;
  29.  
  30.     __u32    tcpdiag_states;        /* States to dump */
  31.     __u32    tcpdiag_dbs;        /* Tables to dump (NI) */
  32. };
  33.  
  34. enum
  35. {
  36.     TCPDIAG_REQ_NONE,
  37.     TCPDIAG_REQ_BYTECODE,
  38. };
  39.  
  40. #define TCPDIAG_REQ_MAX TCPDIAG_REQ_BYTECODE
  41.  
  42. /* Bytecode is sequence of 4 byte commands followed by variable arguments.
  43.  * All the commands identified by "code" are conditional jumps forward:
  44.  * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
  45.  * length of the command and its arguments.
  46.  */
  47.  
  48. struct tcpdiag_bc_op
  49. {
  50.     unsigned char    code;
  51.     unsigned char    yes;
  52.     unsigned short    no;
  53. };
  54.  
  55. enum
  56. {
  57.     TCPDIAG_BC_NOP,
  58.     TCPDIAG_BC_JMP,
  59.     TCPDIAG_BC_S_GE,
  60.     TCPDIAG_BC_S_LE,
  61.     TCPDIAG_BC_D_GE,
  62.     TCPDIAG_BC_D_LE,
  63.     TCPDIAG_BC_AUTO,
  64.     TCPDIAG_BC_S_COND,
  65.     TCPDIAG_BC_D_COND,
  66. };
  67.  
  68. struct tcpdiag_hostcond
  69. {
  70.     __u8    family;
  71.     __u8    prefix_len;
  72.     int    port;
  73.     __u32    addr[0];
  74. };
  75.  
  76. /* Base info structure. It contains socket identity (addrs/ports/cookie)
  77.  * and, alas, the information shown by netstat. */
  78. struct tcpdiagmsg
  79. {
  80.     __u8    tcpdiag_family;
  81.     __u8    tcpdiag_state;
  82.     __u8    tcpdiag_timer;
  83.     __u8    tcpdiag_retrans;
  84.  
  85.     struct tcpdiag_sockid id;
  86.  
  87.     __u32    tcpdiag_expires;
  88.     __u32    tcpdiag_rqueue;
  89.     __u32    tcpdiag_wqueue;
  90.     __u32    tcpdiag_uid;
  91.     __u32    tcpdiag_inode;
  92. };
  93.  
  94. /* Extensions */
  95.  
  96. enum
  97. {
  98.     TCPDIAG_NONE,
  99.     TCPDIAG_MEMINFO,
  100.     TCPDIAG_INFO,
  101.     TCPDIAG_VEGASINFO,
  102. };
  103.  
  104. #define TCPDIAG_MAX TCPDIAG_VEGASINFO
  105.  
  106.  
  107. /* TCPDIAG_MEM */
  108.  
  109. struct tcpdiag_meminfo
  110. {
  111.     __u32    tcpdiag_rmem;
  112.     __u32    tcpdiag_wmem;
  113.     __u32    tcpdiag_fmem;
  114.     __u32    tcpdiag_tmem;
  115. };
  116.  
  117. /* TCPDIAG_VEGASINFO */
  118.  
  119. struct tcpvegas_info {
  120.     __u32    tcpv_enabled;
  121.     __u32    tcpv_rttcnt;
  122.     __u32    tcpv_rtt;
  123.     __u32    tcpv_minrtt;
  124. };
  125.  
  126.  
  127. #endif /* _TCP_DIAG_H_ */
  128.